The present invention generally relates to computer storage and more specifically, to a system and method for policy-based storage provisioning.
As applications become more advanced and complicated, the allocation of storage for the applications becomes increasingly difficult. Storage area networks (SANs), for example, provide applications running on computer systems (servers, server clusters, PCs, and so on) with high storage capacity capability using a plurality of storage server systems coupled to the computer systems. Typically, SAN administrators manually allocate storage based upon the needs of an application running on a server or server cluster that will use disk space. Additionally, when there are any changes, such as in the characteristics of the application, the characteristics of the server or server cluster, the capability of the storage devices, the network topology, or the availability of storage in a data center, the administrator may need to revise earlier decisions on storage allocations and take necessary corrective action, such as migrating existing data from existing disks to new disks. The changing of earlier decisions of storage allocation may be complex, time-consuming, and error-prone, and may require application downtime.
Frequently, storage administrators do not have the necessary information and/or tools to process available information to take the appropriate actions. Further, even if the necessary information and tools are available to take the corrective actions, the effort and cost involved may deter the administrators from taking the actions. Thus, sub-optimal usage of storage capacity results and the performance of an application is subsequently degraded.
Another issue that SAN administrators face is the heterogeneity of storage configuration interfaces for each of the different types of storage devices that are deployed in a SAN. Each of the storage configuration interfaces have different capabilities and nuances that make it very difficult, if not impossible, for SAN administrators to configure storage in a consistent and uniform manner. Thus, deploying new storage devices becomes very difficult and may even be delayed or avoided even though the new storage device may be more suitable or cost effective for the applications that use the storage.
In one embodiment, an apparatus and method for provisioning and managing storage using storage provisioning policies is provided. Storage provisioning policies are created and are used to select and provision appropriate storage for applications.
A storage provisioning policy is created by specifying storage heuristics for storage attributes using storage heuristic metadata. Storage attributes characterize a storage device and storage heuristic metadata describe how to specify a storage heuristic. Using the storage heuristic metadata, storage heuristics are defined to express a rule or constraint as a function of a storage attribute. In addition, the storage provisioning policy may also specify mapping rules for exporting the storage to a consumer of the storage, such as the server or server cluster.
After storage provisioning policies are created, discovered data for storage attributes associated with the storage devices are compared to related storage heuristics for the storage attributes found in the storage profile. Then, one or more storage devices are selected for provisioning if the discovered attributes of the storage devices satisfy the storage heuristics in the storage profile. The storage that is provisioned may be any type of storage, such as storage units of storage devices, storage devices, and the like. In another embodiment, virtual media units may be created if no storage devices satisfy the storage heuristics in the storage profile. The selected or created storage units are then provisioned to the storage consumer using the mapping rules specified as part of the storage provisioning policy.
In one embodiment, a method for provisioning one or more storage devices using one or more storage provisioning policies and discovered storage attribute data from the one or more storage devices is provided. The one or more storage provisioning policies comprising one or more storage heuristics for one or more storage attributes. The method comprises: comparing the discovered storage attribute data associated with the one or more storage devices to the one or more storage heuristics for the storage attributes in the one or more storage provisioning policies; and if discovered storage attribute data associated with a storage device in the one or more storage devices satisfy the one or more storage heuristics for the one or more storage attributes, provisioning the storage device.
In another embodiment, a method for creating one or more storage provisioning policies is provided. The method comprises: defining one or more storage attributes; defining one or more storage heuristic metadata associated with the one or more storage attributes; and specifying one or more storage heuristics using the defined one or more storage heuristic metadata associated with the one or more defined storage attributes to create the storage provisioning policy, the storage provisioning policy usable to provision a storage device, wherein the provisioned storage device includes discoverable data that satisfies the storage heuristics for the storage attributes.
A further understanding of the nature and advantages of the invention herein may be realized by reference of the remaining portions in the specifications and the attached drawings.